import { IRoom } from '@/interface/common'

export interface IGetQueueListValidate{
  RoomId: string
  QueueId?: string
  DoctorId?: string
}

export interface IQueueDataItem {
  Name: string;
  QueueNo: string;
  QueueType: number;
  TimeSection?: any;
}

export interface IQueueData {
  DoctorNo: string
  DoctorName: string
  DoctorLevel: string
  DoctorInfo: string
  DeptCode: string
  DeptName: string
  RoomName: string
  RoomId: string
  CurList: IQueueDataItem[]
  WaitList: IQueueDataItem[]
  TimeSectionList: any[]
  IsCall: number
  CallName: string
  CallQueueNo: string
}

export interface IQueueItem{
  ID: string
  RoomId: string
  Room?: IRoom
  Info: string
  Data?: IQueueData
  CreateTime: Date
}

export interface IRoomQueue{
  RoomId: string
  ActiveQueue: IQueueItem
  List: IQueueItem[]
}

export interface IReservationInspectionQuery{
  RoomId: string
  CardNo?: string
  InHosNo?: string
}

export interface IPayAndSignQuery{
  RoomId: string
  CardNo?: string
  InHosNo?: string
  ApplyNo: string
}

export interface IReservationInspectionItem {
  itemName: string
  itemCode: string
  checkPoint: string
  itemPrice: string
  // 支付状态, 0:未缴费, 1:已缴费, 2:作废, 3:退费
  itemPayState: string
}

export interface IReservationInspection {
  applyNo: string
  applyTime: string
  visitNo: string
  cardNo: string
  patientName: string
  patientAge: string
  patientSex: string
  itemTypeName: string
  applyDoctorCode: string
  applyDoctorName: string
  applyDeptCode: string
  applyDeptName: string
  examDeptCode: string
  examDeptName: string
  payState: string
  roomId: string
  roomName: string
  state: number
  items: IReservationInspectionItem[]
}

export interface IApplyInfoList{
  applyInfoList: IReservationInspection[]
}

export interface IAddCreditQuery{
  Amount: number
  Use: '门诊充值' | '住院押金充值' | '缴费'
  PatientId: string
}

export interface ISysPay {
  PatientId: string;
  Amount: number;
  OutOrderNo: string;
  PayUrl: string;
  PayStatus: '待支付' | '支付中' | '支付成功' | '支付失败'
  RefundStatus: string;
  PayTime: Date;
  Use: string;
  UseStatus: string;
  CreateTime: Date;
  ClientId: string;
  UpdateTime: Date;
  ID: string;
}
